diff --git a/test/run b/test/run
index eb1563d..0b9188e 100755
--- a/test/run
+++ b/test/run
@@ -26,8 +26,7 @@
 
 # This needs you to set up Python test coverage tools.
 # To enable Python test coverage on Debian-type distributions (e.g. Ubuntu):
-#   $ sudo apt-get install python-pip python-pytest
-#   $ sudo pip install coverage
+#   $ sudo apt-get install python-pytest python-coverage
 PYTHONPATH=${DTC_DIR}/pylibfdt DTC=${DTC_DIR}/dtc run_test \
 	./tools/binman/binman -T
 
diff --git a/tools/binman/README b/tools/binman/README
index 22f21bc..f74e392 100644
--- a/tools/binman/README
+++ b/tools/binman/README
@@ -583,8 +583,7 @@
 
 To enable Python test coverage on Debian-type distributions (e.g. Ubuntu):
 
-   $ sudo apt-get install python-pip python-pytest
-   $ sudo pip install coverage
+   $ sudo apt-get install python-coverage python-pytest
 
 
 Advanced Features / Technical docs
diff --git a/tools/binman/binman.py b/tools/binman/binman.py
index 31b0453..944fd5d 100755
--- a/tools/binman/binman.py
+++ b/tools/binman/binman.py
@@ -81,24 +81,25 @@
 def RunTestCoverage():
     """Run the tests and check that we get 100% coverage"""
     # This uses the build output from sandbox_spl to get _libfdt.so
-    cmd = ('PYTHONPATH=$PYTHONPATH:%s/sandbox_spl/tools coverage run '
+    cmd = ('PYTHONPATH=$PYTHONPATH:%s/sandbox_spl/tools python-coverage run '
             '--include "tools/binman/*.py" --omit "*test*,*binman.py" '
             'tools/binman/binman.py -t' % options.build_dir)
     os.system(cmd)
-    stdout = command.Output('coverage', 'report')
+    stdout = command.Output('python-coverage', 'report')
     lines = stdout.splitlines()
 
     test_set= set([os.path.basename(line.split()[0])
                      for line in lines if '/etype/' in line])
     glob_list = glob.glob(os.path.join(our_path, 'etype/*.py'))
-    all_set = set([os.path.basename(item) for item in glob_list])
+    all_set = set([os.path.splitext(os.path.basename(item))[0]
+                   for item in glob_list if '_testing' not in item])
     missing_list = all_set
     missing_list.difference_update(test_set)
-    missing_list.remove('_testing.py')
     coverage = lines[-1].split(' ')[-1]
     ok = True
     if missing_list:
         print 'Missing tests for %s' % (', '.join(missing_list))
+        print stdout
         ok = False
     if coverage != '100%':
         print stdout
